Thursday, May 10, 2007

Worm.java

Worm.java

import java.io.*;

class Data implements Serializable {
private int i;
Data(int x) {
i = x;
}
public String toString() {
return Integer.toString(i);
}
}

public class Worm implements Serializable {
private static int r() {
return (int)(Math.random() * 10);
}

private Data[] d = {
new Data(r()), new Data(r()), new Data(r())
};
private Worm next;
private char c;

public Worm(int i, char x) {
System.out.println(" Worm constructor: " + i);
c = x;
if(i > 0)
next = new Worm(i-1, (char)(x + 1));
}

public Worm() {
System.out.println(" Default constructor");
}
public String toString() {
String s = ":" + c + "(";
for(int i = 0; i < d.length; i++)
s += d[i].toString();
s += ")";
if(next != null)
s += next.toString();
return s;
}
public static void main(String[] args)
throws ClassNotFoundException, IOException {
Worm w = new Worm(6, 'a');
System.out.println("w = " + w);

ObjectOutputStream out =
new ObjectOutputStream(
new FileOutputStream("worm.out"));
out.writeObject("Worm storage");
out.writeObject(w);
out.close();

ObjectInputStream in =
new ObjectInputStream(
new FileInputStream("worm.out"));
String s = (String)in.readObject();
Worm w2 = (Worm)in.readObject();
System.out.println(s + ", w2 = " + w2);

ByteArrayOutputStream bout =
new ByteArrayOutputStream();
ObjectOutputStream out2 =
new ObjectOutputStream(bout);
out2.writeObject("Worm Storage");
out2.writeObject(w);
out2.flush();

ObjectInputStream in2 =
new ObjectInputStream(
new ByteArrayInputStream(
bout.toByteArray()));
s = (String)in2.readObject();
Worm w3 = (Worm)in2.readObject();
System.out.println(s + ", w3 = " + w3);
}
}

Worm.java output

Worm constructor: 6
Worm constructor: 5
Worm constructor: 4
Worm constructor: 3
Worm constructor: 2
Worm constructor: 1
Worm constructor: 0
w = :a(938):b(582):c(469):d(625):e(100):f(988):g(527)
Worm storage, w2 = :a(938):b(582):c(469):d(625):e(100):f(988):g(527)
Worm Storage, w3 = :a(938):b(582):c(469):d(625):e(100):f(988):g(527)

Tag: Study Code Program Java

1 comment: